#ifndef __UASART_H
#define __UASART_H

#include "usart.h"
#include "global.h"
#include "gd32f30x.h"

#define UART0_BUF_SIZE      128     // 一定是2^n
#define UART0_BUF_MASK      (UART0_BUF_SIZE-1)

extern uchar  REN0;                              // 串口0接收使能
extern uchar  uart0_len;                        // uart0已接收/或要发送长度
extern uchar  uart0_buf[UART0_BUF_SIZE];        // uart0发送/接收缓冲区
extern ushort  uart0_timestamp;                 // 最后接收时间
extern uchar *uart0_tx_ptr;                     // 发送指针
extern bit uart0_rx_pending;                    // uart0正在接收标志
extern bit uart0_tx_pending;                    // uart0正在发送标志
extern bit uart0_delay_process;            // uart0指令延时处理
extern uchar  uart0_len_len;                        // uart0已接收/或要发送长度
extern uchar  uart0_buf_buf[128][128];        // uart0发送/接收缓冲区

HAL_StatusTypeDef USART0_Send_Date(uchar *data,uchar number);
bit Uart0_FrameEnded(void);
bit Uart0_Send_Message(void);

#endif
